IBClientDataSet - ApplyUpdate

Otázka od: Benda Lukas

13. 8. 2004 23:14

Chci pouzivat ClientDataSet protoze ma celkem dost vyhod. Problem je v
tom, ze pri pouzivani dohromady s IBX komponentama, samotny Provaider +
TClientDataSet nefunguje (ani kdyz presne zopakuju postup, ktery popsal
nekdo "chytry" od Borlandu). Samotny TIBClientDataSet je na tom dost
podobne, pokud nechci osetrovat udalost BeforeUpdateRecord, tak se zadne
data neulozi. CommandText je jednoduchy SELECT, ale to nic nemeni na
tom, ze po ApplyUpdates je pocet chyb nulovy, ale data se do DB nedostanou.

Vite jak na to? Nebo se proste mam na IB uplne vykaslat?


Odpovedá: Martin Burle

14. 8. 2004 14:56

> data neulozi. CommandText je jednoduchy SELECT, ale to nic nemeni na
> tom, ze po ApplyUpdates je pocet chyb nulovy, ale data se do DB
nedostanou.

Nezapominas commitovat transakci?

> Vite jak na to? Nebo se proste mam na IB uplne vykaslat?

To by byla myslim chyba ;)

MB


Odpovedá: Benda Lukas

16. 8. 2004 22:44


>>data neulozi. CommandText je jednoduchy SELECT, ale to nic nemeni na
>>tom, ze po ApplyUpdates je pocet chyb nulovy, ale data se do DB
>>
>>
>nedostanou.
>
>Nezapominas commitovat transakci?
>
>
Neboj se, nezapominam. Jenom kdyz reaguji na OnError tak mi to pise, ze
je ocekavan parametr name. Hmmm, tak to mi teda fakt hlava nebere.


Odpovedá: Martin Burle

17. 8. 2004 8:13

> >>tom, ze po ApplyUpdates je pocet chyb nulovy, ale data se do DB
> >>
> >>
> >nedostanou.
> >
> >Nezapominas commitovat transakci?
> >
> >
> Neboj se, nezapominam. Jenom kdyz reaguji na OnError tak mi to pise, ze
> je ocekavan parametr name. Hmmm, tak to mi teda fakt hlava nebere.

Psal jsi, ze je pocet chyb nulovy, ale kdyz se ti vyvolava onError (TIBCDS
ma vice chybovych eventu, nevim, ktery mas na mysli), tak to asi tak uplne
bez chyb nebude, ne?

MB


Odpovedá: Viktor Doubek

17. 8. 2004 8:41

> Chci pouzivat ClientDataSet protoze ma celkem dost vyhod. Problem je v
> tom, ze pri pouzivani dohromady s IBX komponentama, samotny Provaider +
> TClientDataSet nefunguje (ani kdyz presne zopakuju postup, ktery popsal

Mel jsem stejny problem a po asi 2 dnech vyzkumu a rozcilovani prisel na to, ze
to nefunguje pri transisolation repeatable read. Po nastaveni na ReadComitted
to zaclo slapat a pouzivam dodnes bez problemu. VD


Odpovedá: Jan Sebelik

17. 8. 2004 9:06

> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Martin Burle
> > Neboj se, nezapominam. Jenom kdyz reaguji na OnError tak mi to pise, ze
> > je ocekavan parametr name. Hmmm, tak to mi teda fakt hlava nebere.

Jsem tehoz nazoru - TClientDataSet je pekna komponenta.

Mozna se mylim, ale odhadoval bych, ze pouzivas Delphi 7 bez prislusneho update
IBX.
V komponente TCustomClientDataSet je chyba v metode PSExecuteStatement.
Koukni, jak tam zazavorkovali radek
// FQuery.GenerateParamNames := True;
protoze to kompilator nevzal...  
Tedy pokud mluvime o stejne verzi.

Je treba nainstalovat update.

Mimochodem:
V D6 to bylo reseno prasacky, ale funkcne.
V metode TClientDataSet.PSExecuteStatement se vytvari instance odvozene tridy
TIBQuery, ktera je navic v jine unit.
Hruza!!!

V D7 to udelali trochu "lepe" (neni potreba krizova reference od unit IBQuery),
ale ne o moc lepe a navic s chybama.
Pak to v update D6 opravili, ale v D7 to zustalo.
Resi to az prislusny update IBX.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes.cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
= tel. 493 792 569 (mobil 776 347 735)
====================================


Odpovedá: Benda Lukas

17. 8. 2004 18:07


>Psal jsi, ze je pocet chyb nulovy, ale kdyz se ti vyvolava onError (TIBCDS
>ma vice chybovych eventu, nevim, ktery mas na mysli), tak to asi tak uplne
>bez chyb nebude, ne?
>
>MB
>
Uznavam ze je to schizofrenicke chovani. Po ApplyUpdate() vraci pocet
chyb, ktere pri updatovani probehly. To je rovno nule, ale OnError event
mi chybu vrati. To je dost divne, ale nezkoumal bych to, kdyby mi to ten
Update provedlo.